DB17-wjdDB17-w
DB17-j
DB17-d
DB17
DB17
DB17, DB17-jwd
DB17-wjd (TTIC)DB17-w
DB17-j
DB17-d
rviz
DB17-lc Duckiebot configurations
ssh-keygen
rqt_console
roslaunch
rviz
rostopic
catkin_make
rosrun
rostest
rospack
rosparam
rosdep
roswtf
rosbag
roscore
pkg_name
duckieteam
duckietown
duckietown_msgs
easy_algo
easy_logs
easy_nodeeasy_node API
easy_node: the user’s point of view
easy_regression
what_the_duck
nothing
Knowledge of Duckiebot configuration naming conventions, their components and functionalities.
We define different Duckiebot configurations depending on their time of use and hardware components. This is a good starting point if you are wondering what parts you should obtain to get started.
The configurations are defined with a root: DB17-, indicating the “bare bones” Duckiebot used in the Fall 2017 synchronized course, and an appendix y which can be the union (in any order) of any or all of the elements of the optional hardware set $\aset{O} = \{$w, j, d, p, l, c$\}$.
The elements of $\aset{O}$ are labels identifying optional hardware that aids in the development phase and enables the Duckiebot to talk to other Duckiebots. The labels stand for:
w: 5 GHz wireless adapter to facilitate streaming of images;
j: wireless joypad that facilitates manual remote control;
d: USB drive for additional storage space;
c: a different castor wheel to replace the preexisting omni-directional wheel;
l: includes LEDs, LED hat, bumpers and the necessary mechanical bits to set the bumpers in place. Note that the installation of the bumpers induces the replacement of a few DB17 components;
During the Fall 2017 course, three Duckietown Engineering Co. branches (Zurich, Montreal, Chicago) are using these configuration naming conventions. Moreover, all institutions release hardware to their Engineers in training in two phases. We summarize the configuration releases below.
DB17This is the minimal configuration for a Duckiebot. It is the configuration of choice for tight budgets or when operation of a single Duckiebot is more of interest than fleet behaviors.
Functions: A DB17 Duckiebot can navigate autonomously in a Duckietown, but cannot communicate with other Duckiebots.
Components: A “bare-bones” DB17 configuration includes:
| Chassis | USD 20 |
| Camera with 160-FOV Fisheye Lens | USD 22 |
| Camera Mount | USD 8.50 |
| 300mm Camera Cable | USD 2 |
| Raspberry Pi 3 - Model B | USD 35 |
| Heat Sinks | USD 5 |
| Power supply for Raspberry Pi | USD 7.50 |
| 16 GB Class 10 MicroSD Card | USD 10 |
| Mirco SD card reader | USD 6 |
| DC Motor HAT | USD 22.50 |
| Spliced USB-A power cable | USD 0 |
| 2 Stacking Headers | USD 2.50/piece |
| Battery | USD 20 |
| 16 Nylon Standoffs (M2.5 12mm F 6mm M) | USD 0.05/piece |
| 4 Nylon Hex Nuts (M2.5) | USD 0.02/piece |
| 4 Nylon Screws (M2.5x10) | USD 0.05/piece |
| 2 Zip Ties (300x5mm) | USD 9 |
Total cost for DB17 configuration |
USD 173.6 |
Description of components: Unit C-2 - Acquiring the parts for the Duckiebot DB17-wjd
Assembly instructions: Unit C-5 - Assembling the Duckiebot DB17, DB17-jwd
DB17-wThis configuration is the same as DB17 with the addition of a 5 Ghz wireless adapter.
Functions: This configuration has the same functionality of DB17. In addition, it equips the Duckiebot with a secondary, faster, Wi-Fi connection, ideal for image streaming.
Components:
DB17 |
USD 173.6 |
| Wireless Adapter (5 GHz) | USD 20 |
Total cost for DB17-w configuration |
USD 193.6 |
Description of components: Unit C-2 - Acquiring the parts for the Duckiebot DB17-wjd
Assembly instructions: Unit C-5 - Assembling the Duckiebot DB17, DB17-jwd
DB17-jThis configuration is the same as DB17 with the addition of a 2.4 GHz wireless joypad.
Functions: This configuration has the same functionality of DB17. In addition, it equips the Duckiebot with manual remote control capabilities. It is particularly useful for getting the Duckiebot our of tight spots or letting younger ones have a drive, in addition to providing handy shortcuts to different functions in development phase.
Components:
Description of components: Unit C-2 - Acquiring the parts for the Duckiebot DB17-wjd
Assembly instructions: Unit C-5 - Assembling the Duckiebot DB17, DB17-jwd
DB17-dThis configuration is the same as DB17 with the addition of a USB flash hard drive.
Functions: This configuration has the same functionality of DB17. In addition, it equips the Duckiebot with an external hard drive that is convenient for storing videos (logs) as it provides both extra capacity and faster data transfer rates than the microSD card in the Raspberry Pi. Moreover, it is easy to unplug it from the Duckiebot at the end of the day and bring it over to a computer for downloading and analyzing stored data.
Components:
DB17 |
USD 173.6 |
| Tiny 32GB USB Flash Drive | USD 12.50 |
Total cost for DB17-d configuration |
USD 186.1 |
Description of components: Unit C-2 - Acquiring the parts for the Duckiebot DB17-wjd
Assembly instructions: Unit C-5 - Assembling the Duckiebot DB17, DB17-jwd
DB17-cIn this configuration, the DB17 omni-directional wheel is replaced with a caster wheel.
Functions: The caster wheel upgrade provides a smoother ride.
Components:
DB17 |
USD 173.6 |
Caster (DB17-c) |
USD 6.55/4 pieces |
| 4 Standoffs (M3 12mm F-F) | USD 0.63/piece |
| 8 Screws (M3x8mm) | USD 4.58/100 pieces |
| 8 Split washer lock | USD 1.59/100 pieces |
Total cost for DB17-c configuration |
USD 178.25 |
update links of mechanical bits from M3.5 to M3.
The omni-directional caster wheel is included in the chassis package, so replacing it does not reduce the DB17 cost.
Description of components: Unit E-1 - Acquiring the parts for the Duckiebot DB17-lc
Assembly instructions: Unit E-3 - Assembling the Duckiebot DB17-wjdlc
DB17-lIn this configuration the Duckiebot in equipped with the necessary hardware for controlling and placing 5 RGB LEDs on the Duckiebot. Differently from previous configurations that add or replace a single component, DB17-l introduces several hardware components that are all necessary for a proper use of the LEDs.
It may be convenient at times to refer to hybrid configurations including any of the DB17-jwcd in conjunction with a subset of the DB17-l components. In order to disambiguate, let the partial upgrades be defined as:
DB17-l1: adds a PWM hat to DB17, in addition to a short USB angled power cable and a M-M power wire;DB17-l2: adds a bumpers set to DB17, in addition to the mechanical bits to assemble it;DB17-l3: adds a LED hat and 5 RGB LEDs to DB17-l1l2, in addition to the F-F wires to connect the LEDs to the LED board.introducing the PWM hat in DB17-l1 induces a replacement of the spliced cable powering solution for the DC motor hat. Details can be found in Unit E-3 - Assembling the Duckiebot DB17-wjdlc.
Functions: DB17-l is the necessary configuration to enable communication between Duckiebots, hence fleet behaviors (e.g., negotiating the crossing of an intersection). Subset configurations are sometimes used in a standalone way for: (DB17-l1) avoid using a sliced power cable to power the DC motor hat in DB17, and (DB17-l2) for purely aesthetic reasons.
Components:
DB17 |
USD 173.6 |
PWM/Servo HAT (DB17-l1) |
USD 17.50 |
Power Cable (DB17-l1) |
USD 7.80 |
Male-Male Jumper Wire (150mm) (DB17-l1) |
|
| USD 1.95 | Bumper set (DB17-l2) |
| USD 7 (custom made) | 8 M3x10 pan head screws (DB17-l2) |
| USD 7 (custom made) | 8 M3 nuts (DB17-l2) |
| USD 7 (custom made) | Bumpers (DB17-l2) |
| USD 7 (custom made) | |
LEDs (DB17-l3) |
USD 10 |
LED HAT (DB17-l3) |
USD 28.20 for 3 pieces |
20 Female-Female Jumper Wires (300mm) (DB17-l3) |
USD 8 |
4 4 pin female header (DB17-l3) |
USD 0.60/piece |
2 16 pin male
[12 pin male header](http://www.digikey.com/product-detail/en/amphenol-fci/68000-412HLF/609-3266-ND/1878525) (DB17-l3)USD 0.48/piece
header (DB17-l3) |
USD 0.61/piece |
3 pin male header (DB17-l3) |
USD 0.10/piece |
2 pin female shunt jumper (DB17-l3) |
USD 2/piece |
40 pin female header (DB17-l3) |
USD 1.50 |
5 200 Ohm resistors (DB17-l3) |
USD 0.10/piece |
10 130 Ohm resistors (DB17-l3) |
USD 0.10/piece |
Total for DB17-l configuration |
USD 305 |
Description of components: Unit E-1 - Acquiring the parts for the Duckiebot DB17-lc
Assembly instructions: Unit E-3 - Assembling the Duckiebot DB17-wjdlc
All branches release their hardware in two phases, namely a and b.
First release (DB17-Zurich-a): is a DB17-wjd.
Second release (DB17-Zurich-b): is a DB17-wjdcl.
First release (DB17-Montreal-a): is a hybrid DB17-wjd + PWM hat (or DB17-wjdl1).
Second release (DB17-Montreal-b): is a DB17-wjdl.
The Montreal branch is not implementing the DB17-c configuration.
First release (DB17-Chicago-a): same as DB17-Montreal-a.
Second release (DB17-Chicago-b): same as DB17-Montreal-b.
The Chicago branch is not implementing the DB17-c configuration.
DB17-wjdThe trip begins with acquiring the parts. Here, we provide a link to all bits and pieces that are needed to build a Duckiebot, along with their price tag. If you are wondering what is the difference between different Duckiebot configurations, read this.
In general, keep in mind that:
Cost: USD 174 + Shipping Fees (minimal configuration DB17)
Time: 15 days (average shipping for cheapest choice of components)
A kit of parts ready to be assembled in a DB17 or DB17-wjd configuration.
| Chassis | USD 20 |
| Camera with 160-FOV Fisheye Lens | USD 22 |
| Camera Mount | USD 8.50 |
| 300mm Camera Cable | USD 2 |
| Raspberry Pi 3 - Model B | USD 35 |
| Heat Sinks | USD 5 |
| Power supply for Raspberry Pi | USD 7.50 |
| 16 GB Class 10 MicroSD Card | USD 10 |
| Mirco SD card reader | USD 6 |
| DC Motor HAT | USD 22.50 |
| 2 Stacking Headers | USD 2.50/piece |
| Battery | USD 20 |
| 16 Nylon Standoffs (M2.5 12mm F 6mm M) | USD 0.05/piece |
| 4 Nylon Hex Nuts (M2.5) | USD 0.02/piece |
| 4 Nylon Screws (M2.5x10) | USD 0.05/piece |
| 2 Zip Ties (300x5mm) | USD 9 |
Wireless Adapter (5 GHz) (DB17-w) |
USD 20 |
Joypad (DB17-j) |
USD 10.50 |
Tiny 32GB USB Flash Drive (DB17-d) |
USD 12.50 |
Total for DB17 configuration |
USD 173.6 |
Total for DB17-w configuration |
USD 193.6 |
Total for DB17-j configuration |
USD 184.1 |
Total for DB17-d configuration |
USD 186.1 |
Total for DB17-wjd configuration |
USD 216.6 |
We selected the Magician Chassis as the basic chassis for the robot (Figure 2.1).
We chose it because it has a double-decker configuration, and so we can put the battery in the lower part.
The chassis pack includes 2 DC motors and wheels as well as the structural part, in addition to a screwdriver and several necessary mechanical bits (standoffs, screws and nuts).
The Raspberry Pi is the central computer of the Duckiebot. Duckiebots use Model B (Figure 2.2) ( A1.2GHz 64-bit quad-core ARMv8 CPU, 1GB RAM), a small but powerful computer.
We want a hard-wired power source (5VDC, 2.4A, Micro USB) to supply the Raspberry Pi (Figure 2.3) while not driving. This charger can double down as battery charger as well.
Students in the ETHZ-Fall 2017 course will receive a converter for US to CH plug.
The Raspberry Pi will heat up significantly during use. It is warmly recommended to add heat sinks, as in Figure 2.4. Since we will be stacking HATs on top of the Raspberry Pi with 15 mm standoffs, the maximum height of the heat sinks should be well below 15 mm. The chip dimensions are 15x15mm and 10x10mm.
The MicroSD card (Figure 2.5) is the hard disk of the Raspberry Pi. 16 GB of capacity are sufficient for the system image.
A microSD card reader (Figure 2.6) is useful to copy the system image to a Duckiebot from a computer to the Raspberry Pi microSD card, when the computer does not have a native SD card slot.
The Camera is the main sensor of the Duckiebot. All versions equip a 5 Mega Pixels 1080p camera with wide field of view ($160^\circ$) fisheye lens (Figure 2.7).
The camera mount (Figure 2.8) serves to keep the camera looking forward at the right angle to the road (looking slightly down). The front cover is not essential.
The assembled camera (without camera cable), is shown in (Figure 2.9).
A longer (300 mm) camera cable Figure 2.10 makes assembling the Duckiebot easier, allowing for more freedom in the relative positioning of camera and computational stack.
We use the DC Stepper motor HAT (Figure 2.11) to control the DC motors that drive the wheels. This item will require soldering to be functional. This HAT has dedicate PWM and H-bridge for driving the motors.
We use a long 20x2 GPIO stacking header (Figure 2.12) to connect the Raspberry Pi with the DC Motor HAT. This item will require soldering to be functional.
The battery (Figure 2.13) provides power to the Duckiebot.
We choose this battery because it has a good combination of size (to fit in the lower deck of the Magician Chassis), high output amperage (2.4A and 2.1A at 5V DC) over two USB outputs, a good capacity (10400 mAh) at an affordable price. The battery linked in the table above comes with two USB to microUSB cables.
We use non electrically conductive standoffs (M2.5 12mm F 6mm M), nuts (M2.5), and screws (M2.5x10mm) to hold the Raspberry Pi to the chassis and the HATs stacked on top of the Raspberry Pi.
The Duckiebot requires 8 standoffs, 4 nuts and 4 screws.
Two 300x5mm zip ties are needed to keep the battery at the lower deck from moving around.
DB17-wThe Edimax AC1200 EW-7822ULC 5 GHz wireless adapter (Figure 2.16) boosts the connectivity of the Duckiebot, especially useful in busy Duckietowns (e.g., classroom). This additional network allows easy streaming of images.
DB17-jThe joypad is used to manually remote control the Duckiebot. Any 2.4 GHz wireless controller (with a tiny USB dongle) will do.
The model linked in the table (Figure 2.17) does not include batteries.
2 AA 1.5V batteries (Figure 2.18).
DB17-dIn configuration DB17-d, the Duckiebot is equipped with an “external” hard drive (Figure 2.19). This add-on is very convenient to store logs during experiments and later port them to a workstation for analysis. It provides storage capacity and faster data transfer than the MicroSD card.